// 用户服务层：处理登录、注册、用户状态管理

function simulateDelay(result, delay = 200) {
  return new Promise((resolve) => setTimeout(() => resolve(result), delay))
}

// 从 localStorage 获取用户数据
function getUsers() {
  const users = localStorage.getItem('blog_users')
  return users ? JSON.parse(users) : []
}

// 保存用户数据到 localStorage
function saveUsers(users) {
  localStorage.setItem('blog_users', JSON.stringify(users))
}

// 获取当前登录用户
export function getCurrentUser() {
  const userStr = localStorage.getItem('current_user')
  return userStr ? JSON.parse(userStr) : null
}

// 设置当前登录用户
export function setCurrentUser(user) {
  if (user) {
    localStorage.setItem('current_user', JSON.stringify(user))
  } else {
    localStorage.removeItem('current_user')
  }
}

// 用户注册
export async function registerUser(username, password) {
  const users = getUsers()
  
  // 检查用户名是否已存在
  if (users.find(u => u.username === username)) {
    return simulateDelay(null)
  }
  
  // 创建新用户
  const newUser = {
    id: Date.now(), // 简单ID生成
    username,
    password, // 实际项目中应该加密
    avatar: `https://i.pravatar.cc/64?img=${Math.floor(Math.random() * 20) + 1}`,
    createdAt: new Date().toISOString()
  }
  
  users.push(newUser)
  saveUsers(users)
  
  return simulateDelay(newUser)
}

// 用户登录
export async function loginUser(username, password) {
  const users = getUsers()
  const user = users.find(u => u.username === username && u.password === password)
  
  if (user) {
    // 登录成功，设置当前用户
    setCurrentUser(user)
    return simulateDelay(user)
  }
  
  return simulateDelay(null)
}

// 用户登出
export function logoutUser() {
  setCurrentUser(null)
}

// 检查用户是否已登录
export function isLoggedIn() {
  return getCurrentUser() !== null
}
